package ar.pegasus.clasificador.web.login;

import javax.ejb.Remove;
import javax.ejb.Stateful;

import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.Destroy;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.security.Credentials;
import org.jboss.seam.security.Identity;

import ar.pegasus.framework.componentes.PException;
import ar.pegasus.framework.engine.business.BossUsuario;
import ar.pegasus.framework.engine.business.BossUsuarioLocal;
import ar.pegasus.framework.manager.BeanFactoryGeneralLocal;

@Stateful
@Name("loginAppWebBean")
public class LoginAppWebBean implements LoginAppWeb {
	
	@In
	private Credentials credentials;
	@In
	private Identity identity;
	
	private String mensajeError;

	
	@Create
	public void init() {
		//Inicializar cosas si es encesario
	}
	
	public boolean login() {
		int idUsuario = -1;
		try {
			BossUsuarioLocal bossUsuario = BeanFactoryGeneralLocal.getInstance().getBean(BossUsuarioLocal.class);
			idUsuario = bossUsuario.verificarUsuario(credentials.getUsername(), credentials.getPassword());
		} catch(PException e) {
			this.mensajeError = "Se ha producido un error al intentar validar el usuario. Por favor, vuelva a intentar";
			return false;
		}
		if(idUsuario == BossUsuario.USUARIO_INVALIDO || idUsuario == BossUsuario.PASSWORD_INVALIDA) {
			this.mensajeError = "El Usuario y/o la contraseña son incorrectos. Por favor verifique.";
			return false;
		}
		return true;
	}

	public String logout() {
		identity.logout();
		return "login";
	}

	public String getMensajeError() {
		return this.mensajeError;
	}

	@Remove
	@Destroy
	public void finish() {
		
	}
	
}
